﻿using Abp.Domain.Services;
using Paas.Core.Approvals.Entities;
using Paas.Core.Const.Enums.Approvals;
using Basefr.Core.Consts.Enums;
using Basefr.Core.Entities;
using System.Collections.Generic;

namespace Paas.Core.Approvals.Interfaces
{
    public interface IApproveManager : IDomainService
    {
        Approve CreateApprove(EnumApproveType type, int objectId, List<KeyValuePair<int, long>> approverIds, out long? nextOperatorId);

        void ApproveFlow<T>(CreateApproveEntity<T> entity, int stepId, EnumApproveStepState state, string opinion, out EnumApproveState approveState, out bool isFinished, out long? nextOperatorId) where T : EntityBase;

        void DeleteApprove(EnumApproveType type, int objectId);
    }
}

